热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

语音(一)|语音识别基础(深度解析)

1声音特性​声音(sound)是由物体振动产生的声波。是通过介质传播并能被人或动物听觉器官所感知的波动现象。最初发出振动的物体叫声源。声音以波的形式振动传播。声音是

1 声音特性​

声音(sound)是由物体振动产生的声波。是通过介质传播并能被人或动物听觉器官所感知的波动现象。最初发出振动的物体叫声源。声音以波的形式振动传播。声音是声波通过任何介质传播形成的运动。

频率:是每秒经过一给定点的声波数量,它的测量单位为赫兹,1千赫或1000赫表示每秒经过一给定点的声波有1000个周期,1兆赫就是每秒钟有1,000,000个周期,等等。

音节:就是听觉能够自然察觉到的最小语音单位,音节有声母、韵母、声调三部分组成。一个汉字的读音就是一个音节,一个英文单词可能有一个或多个音节构成,并且按照音节的不同,可以分为不同的种类。

音素:它是从音节中分析出来的最小语音单位,语音分析到音素就不能再分了。比如,“她穿红衣服”是5个音节,而“红”又可进一步分为3个音素–h,o,ng。音素的分析需要一定的语音知识,但是,如果我们读的慢一点是还可以体会到的。

音位:是指能够区分意义的音素,比如bian,pian,bu,pu就是靠b,p两个音素来区分的,所以b,p就是两个音位。 人耳能听到的音频范围:20HZ–20KHZ。人说话的声音频率:300HZ–3.4KHZ。乐器的音频范围:20HZ–20KHZ。


2 语音时域特性

语音信号有时变特性,是一个非平稳的随机过程。但在一个短时间范围内其特性基本 保持不变,即语音的“短时平稳性”。

在时域,语音信号可以直接用它的时间波形表示出来。其中,清音段类似于白噪声,具有较高的频率,但振幅很小,没有明显的周期性;而浊音都具有明显的周期性,且幅值较大,频率相对较低。语音信号的这些时域特征可以通过短时能量、短时过零率等方法来分析。


2.1 短时能量

由于语音信号的能量随时间而变化,清音和浊音之间的能量差别相当显著。因此,对短时能量和短时平均幅度进行分析,可以描述语音的这种特征变化情况。

定义n时刻某语音信号的短时平均能量为:
在这里插入图片描述
式中,N为窗长,可见短时能量为一帧样点值的加权平方和。特殊地,当窗函数为矩形窗时,有:
在这里插入图片描述


2.2 短时幅度

短时能量的一个主要问题是对信号电平值过于敏感。由于需要计算信号样值的平方和,在定点实现时很容易产生溢出。为了克服这个缺点,可以定义一个短时平均幅度函数来衡量语音幅度的变化:
在这里插入图片描述
上式可以理解为w(n)对|x(n)|的线性滤波运算,实现框图如下。与短时能量比较,短时平均幅度相当于用绝对值之后代替了平方和,简化了运算。


2.3 短时过零率

短时平均过零率是语音信号时域分析中的一种特征参数。它是指每帧内信号通过零值的次数。

①对有时间横轴的连续语音信号,可以观察到语音的时域波形通过横轴的情况。

②在离散时间语音信号情况下,如果相邻的采样具有不同的代数符号就称为发生了过零,因此可以计算过零的次数。

单位时间内过零的次数就称为过零率。一段长时间内的过零率称为平均过零率。如果是正弦信号,其平均过零率就是信号频率的两倍除以采样频率,而采样频率是固定的。因此过零率在一定程度上可以反映信号的频率信息。短时平均过零率的定义为:

在这里插入图片描述


3 语音频域特性


3.1 信号分类

计算信号能量(作用在单位电阻上的电压信号 释放的能量)可以将信号分为:

功率信号:能量无限,不能用能量表示,所以用平均功率表示;

能量信号:能量有限,平均功率为0;

在这里插入图片描述


3.2 频谱

功率信号的频谱(离散):
在这里插入图片描述
含义: 周期功率信号幅值(频率为f0)经过傅里叶级数展开,被多个离散倍频nf0表征,各频点的幅值C(nf0)也即该频点的贡献权系数。


3.3 功率谱密度

功率信号的功率谱密度(连续):

在这里插入图片描述

含义:

将信号的功率按照频点贡献铺在频谱之上;

因其能量是无穷的,所以不能把能量铺上去,只能用有限的功率;

对功率谱密度进行积分,能得到局部频段承载的功率;

相比功率信号的频谱突出各频点对功率信号的信号幅值的贡献,功率谱密度突出各频点对功率信号的功率的贡献。


3.4 频谱密度

能量信号的频谱密度(连续):
在这里插入图片描述
含义:

通过傅里叶变换将能量信号转换到连续频域上;

但因能量有限,不能使用离散贡献频点权系数(几乎为0),只能使用频谱密度来表征。


3.5 能量谱密度

能量信号的能量谱密度(连续):
在这里插入图片描述
含义:

将信号能量铺在频谱之上;

对能量谱密度进行局部积分,能得到局部频段承载的能量;

相比能量信号的频谱密度突出连续频点对功率信号的信号幅值的贡献,能量谱密度突出连续频点对能量信号的能量的贡献。

(AI大语音:语音信号时间上有限,且幅值有限,即是能量有限,频率为0,应该是能量信号,不能计算功率谱。我们实际上做了一个假设,把语音分帧,每一帧都是某一个周期信号的一个周期,所以它是周期信号,周期信号就是功率信号。也就是在未分帧之前的确是能量信号。分帧后在做FFT的时候又在负无穷到正无穷上进行了周期扩长,所以才是功率信号。)


4 语音识别过程

所谓语音识别,就是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型,语言模型以及字典与解码四大部分,此外为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等音频数据预处理工作,将需要分析的音频信号从原始信号中合适地提取出来;特征提取工作将声音信号从时域转换到频域,为声学模型提供合适的特征向量;声学模型中再根据声学特性计算每一个特征向量在声学特征上的得分;而语言模型则根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;最后根据已有的字典,对词组序列进行解码,得到最后可能的文本表示。
在这里插入图片描述
预处理:


  1. 首尾端的静音切除,降低对后续步骤造成的干扰,静音切除的操作一般称为VAD。
  2. 声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧,使用移动窗函数来实现,不是简单的切开,各帧之间一般是有交叠的。

特征提取:主要算法有线性预测倒谱系数(LPCC)和Mel 倒谱系数(MFCC),目的是把每一帧波形变成一个包含声音信息的多维向量。

声学模型(AM):通过对语音数据进行训练获得,输入是特征向量,输出为音素信息。字典:字或者词与音素的对应, 简单来说, 中文就是拼音和汉字的对应,英文就是音标与单词的对应。

语言模型(LM):通过对大量文本信息进行训练,得到单个字或者词相互关联的概率。

解码:就是通过声学模型,字典,语言模型对提取特征后的音频数据进行文字输出。

语音识别流程的举例(只是形象表述,不是真实数据和过程):

1.语音信号:PCM文件等(我是机器人)
2. 特征提取:提取特征向量[1 2 3 4 56 0 …]
3. 声学模型:[1 2 3 4 56 0]-> w o s i j i q i r n
4. 字典:窝:w o;我:w o;是:s i;机:j i;器:q i;人:r n;级:j i;忍:r n;
5. 语言模型:我:0.0786, 是:0.0546,我是:0.0898,机器:0.0967,机器人:0.6785;
6. 输出文字:我是机器人;

参考链接:https://zhuanlan.zhihu.com/p/176820760


推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 计算成像的原理与应用研究
    本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 打开文件管理器_【教程】模组管理器3.1食用指南
    文编:byakko最近有部分小伙伴反应还不会使用unity模组管理器,现在我就给大家讲一下unity模组管理器——从下载到使用。完整视频版以下是无WiF ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • qt学习(六)数据库注册用户的实现方法
    本文介绍了在qt学习中实现数据库注册用户的方法,包括登录按钮按下后出现注册页面、账号可用性判断、密码格式判断、邮箱格式判断等步骤。具体实现过程包括UI设计、数据库的创建和各个模块调用数据内容。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
author-avatar
xiejiahui62272
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有